# -*- coding:utf-8 -*-
# @Time:2023/6/2 23:27
# @Author: cevent
# @name=config

# 定时任务使用函数：固定时间更新
from datetime import timedelta

# 定时任务使用函数：每天x时间更新
from celery.schedules import crontab

# 配置消息存放容器redis(在10号库)
# 接收消息
broker_url = "redis://:cevent619Rs@192.168.139.129:6379/10"
# 返回消息结果
result_backend = "redis://:cevent619Rs@192.168.139.129:6379/11"

# 时区，不指定默认为UTC
timezone = "Asia/Shanghai"

# 为防止内存泄漏，一个进程执行过N次之后杀死，建议是100次
# worker_max_tasks_per_child = 100

# 错误 DatabaseWrapper objects created in a thread can only be used in that same thread
# CELERY_TASK_ALWAYS_EAGER = True

# 导入指定的任务模块,旧版本导入，新版本不可行
# celery_imports = (
#     'demo.taskDemo',
#     'demo.taskDemo2'
# )

# 定时任务，celery5.0之后不要大写，前缀不要celery_
beat_schedule = {
    # 每5秒执行add
    'taskAdd': {
        'task': 'demo.taskDemo.add',
        'schedule': timedelta(seconds=5),
        'args': (6, 9)
    },
    # 每天的17点06分，执行multiply
    'taskMultiply': {
        'task': 'demo.taskDemo2.multiply',
        'schedule': crontab(hour=11, minute=15),
        'args': (3, 4)
    }
}

# 新版本celery导入
imports = (
    'demo.taskDemo',
    'demo.taskDemo2'
)
